package com.dean.basic.sort;

import java.util.Arrays;

/**
 * 插入排序 在前有序的基础上进行排序
 */
public class InsertSort implements DeanArraySort{
    @Override
    public int[] sort(int[] srcArray) {
        int [] sortArr = Arrays.copyOf(srcArray,srcArray.length);
        int tmpIdx;
        int forcount=0;
        for (int i = 1; i < sortArr.length; i++) {
            int tmp = sortArr[i];
            tmpIdx = i;
            for (int j = i-1; j >= 0 && tmp < sortArr[j]; j--) {
                // 如果i位置值小于 前一个位置  则 i = 前一个位置的值
                sortArr[j+1] = sortArr[j];
                tmpIdx = j;
                forcount++;
            }
            sortArr[tmpIdx] = tmp;
            System.out.println(tmpIdx+"==="+i+"==="+forcount);
            System.out.println(Arrays.toString(sortArr));
        }
        return sortArr;
    }
}


